home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
-in_the_mag-
/
emulation
/
computers
/
99
/
read.me
< prev
next >
Wrap
Text File
|
1997-12-12
|
6KB
|
147 lines
Instructions for using TI99EMUL.EXE
===================================
Author: Ton Brouwer
Date: 07/05/93
1. General
This TI-99/4A emulator was written in Turbo-C V2.0 on a simple XT-type PC.
The objective was simply to see if it 'could be done' and how fast such a
program would be if run on a proper computer. It appears that the emulator
still is slower than a real TI even when run on a 486-33 MHz. The speed is
however reasonable on such a machine.
2. How to start-up the emulator
The emulator can be booted from DOS with or without specifying a
configuration filename as an argument. If no argument is specified, the
emulator will look for the default configuration filename 'ticonfig.dat'.
The configuration file contains a list of filenames plus memory addresses
and some additional information, to facilitate a way of using different
cartridges (e.g. Extended Basic or Editor/Assembler). If the configuration
file cannot be found, a standard TI with just TI-BASIC will be configured.
The exact format of the configuration file is explained in 'ticonfig.dat'.
Some configurations ('c','exbas','assm') are included in this package.
You can also use your own GROM dumps or even assemble a new console rom
if you like. Be sure that the files 'rom.bin', 'grom*.bin' and 'diskrom.bin'
are in the directory you start the emulator from. If all the ROM/GROM files
have been loaded successfully, press a key to start the actual emulation.
NOTE-1: I added some 'bypasses' in the 'grom0.bin' file to speed-up the
booting process, (e.g. the VDP isn't cleared, no character defs
loaded, because it isn't essential for this version).
NOTE-2: If you enter 'mode co40' in DOS before running the emulator
the display will resemble a TI a little bit better.
3. What is supported and what's not?
3.1 TMS-9900
Almost every TI-instruction is emulated, except for the following
instructions: LDCR,STCR,TB,SBO,SBZ. They are recognized, but no actual
data is returned or written. The following instructions will cause an
'Illegal instruction' error: IDLE,RSET,CKON,CKOF,LREX, and so will all
other opcodes that do not represent valid instructions. Opcode >0020 is
illegal but it is used to trigger the 'DSK1' emulation in DSR's.
3.2 CPU Memory
64k RAM is available to the virtual processor, but banks 0,2 and 3 (ROM,DSR,
CARTRIDGE) are write-protected by the software. When a memory-image file
is loaded at location >9000 (reserved for GROM and SPEECH), the >7000->7FFF
paging scheme as was used in the Extended Basic cartridge will kick in.
This means the data will actually reside in the >9000->9FFF area, but it
will appear in the >7000-7FFF area when paged in by a write action.
NOTE: All ROM memory files (not GROM!) must have their even/odd bytes
swapped because of Intel's different internal word representation.
You can do this yourself or the loader can do it for you. See
'ticonfig.dat' for details.
3.3 GROM
64k of GROM is available for loading GPL programs or data. The GROM-write
data port has been 'commented-out' in this version. I can't recall why
I did that. Never mind, you won't really need it.
3.4 VDP
The VDP is poorly emulated. This is mainly because a thorough emulation
would result in an unacceptable drop in performance. Right now only graphics
mode and textmode are supported, and an offset is automatically subtracted
when a charactercode above ASCII code 128 is encountered (Basic offset!).
All non-printable characters are emitted as solid blocks.
3.5 Sound
The sound-chip as well as the sound interrupt are partly emulated. Only
channel one of the 'virtual soundchip' can be programmed, and the duration
of each tone is fixed to 500 milliseconds.
3.6 Disk
Disk access is restricted to the loading and saving of program files. The
DSR is case-insensitive (dsk1==DSK1) and a 'TIFILES' header is added when
a program file is saved. This allows for easy exchange with a real TI.
The DSK1 emulator is able to load program files with or without the
'TIFILES' header. If it encounters the header, it is skipped and not
interpreted. You can use BASIC 'OLD' and 'SAVE' and option 5 from the
E/A menu. DIS/FIX 80 or DIS/VAR 80 files are not yet supported.
3.7 Keyboard
The keyboard is emulated in keyboard mode 0 only. You can use the PC's
keyboard buffer (something a real TI hasn't got!). The keyboard emulation
kicks in when BL @>E is called and the first SBO instruction is encountered.
The function keys F1..F9 are mapped on the TI's FCTN-1..9.
F10 produces ASCII-code 5 (QUIT). F4 (CLEAR) and F10 (QUIT) will not allways
work because they are parsed by a special CRU-based routine and by the
interrupt routine respectively.
(A fix has been added for TI-BASIC 'break', but Extended Basic programs
unfortunately cannot be halted...)
3.8 Interrupts
No interrupts are executed explicitly. A 'fake' interrupt has been added to
simulate the cursor-flash count down timer, and the sound-list processing
interrupt. A part from that, no interrupts are handled. The fake interrupt
will execute on every LIMI 2 instruction, which seemed to me the best place
to put it (this means it will execute at least on every GPL instruction).
4. Terminating the emulator
The only way to terminate the emulator is to press CTRL-C when a keyboard
input is expected. (Otherwise nothing happens) Or you could of course allways
switch off or reset your PC...
5. The future...?
I cannot forecast what this emulator will evolve to. It may be impossible
to emulate graphics fully on a PC with the poor performance prospects.
We are thinking of using a windows environment like Xwindows or MS-Windows
to implement the graphics. Untill then this emulator can only be used to
play around with software that is mainly text-oriented.
5. Feedback!
Please send your comments to me! I am providing this program for free,
because I do not have the intention nor the hope that I will make a lot
of money with it. However I will be very restrained in spreading the source
code, to prevent dozens of slightly modified versions of coming into
circulation.
My address: Ton Brouwer
Dam 19
4331 GE MIDDELBURG
e-mail: ton2@zld.rws.nl
Enjoy!